//
//  FHHomeTableViewController.swift
//  FHweibo
//
//  Created by 张嵩雷 on 16/4/8.
//  Copyright © 2016年 feng. All rights reserved.
//

import UIKit

import SVProgressHUD
/*
导航栏显示什么内容不是看导航控制器,看导航控制器当前正在显示的子控制器
*/

class FHHomeTableViewController: FHBaseTableViewController {
    
    ///微博模型
    var statuses: [FHStatus]?
    
    private let ReuseIDentifier = "ReuseIDentifier"
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
    
        
        //用户没有登录不需要做以下操作
        
        if !FHUserAccountViewModel.sharedInstance.userLogin {
            FHPrint("没有登录不做以下操作")
            return
        }
        
        setupNavigationBar()
        
        //去掉分割线
        tableView.separatorStyle = UITableViewCellSeparatorStyle.None
        
        //注册cell
        tableView.registerClass(FHStatusCell.self, forCellReuseIdentifier: ReuseIDentifier)
        
        //1.cell的高度设置为UITableViewAutomaticDimension
        tableView.rowHeight = UITableViewAutomaticDimension
        //2.预估行高,等cell要显示的时候才会去计算正确的行高
        tableView.estimatedRowHeight = 200
        
        
        FHStatusViewModel.sharedInstance.loadStatus { (statuses, error) -> () in
            
            if error != nil {
                FHPrint("获取微博数据失败 \(error)")
                SVProgressHUD.showErrorWithStatus("你的网络不给力")
                return
            }
            
            //加载微博成功,将微博数据保存起来,让tableview去显示
            self.statuses = statuses
            self.tableView.reloadData()
//            FHPrint("self.statuses: \(self.statuses)")
            
        }
    }
    private func setupNavigationBar() {
      
        
        //方法4
        //左边
        navigationItem.leftBarButtonItem = UIBarButtonItem(imageName: "navigationbar_friendsearch", target: self, action: Selector("didClickPerson:"))
        //右边
        navigationItem.rightBarButtonItem = UIBarButtonItem(imageName: "navigationbar_pop", target: self, action: Selector("didClickQRCode:"))
        
        // ?? 前面如果为nil 就使用 ?? 后面的内容
        // ?? 前面有值,直接使用前面的值
        let name = FHUserAccountViewModel.sharedInstance.userAccount?.screen_name ?? "go die"
        
        
        //标题
        let titleButton = FHHomeTitleButton(title: name)
        titleButton.addTarget(self, action: Selector("didClickTitleButton:"), forControlEvents: UIControlEvents.TouchUpInside)
        navigationItem.titleView = titleButton
    }
    
    //MARK: - 按钮点击事件
    @objc private func didClickTitleButton(button: UIButton) {
        //切换按钮的选中状态
        button.selected = !button.selected
        

        
        UIView.animateWithDuration(FHDefautlAnimDuration) { () -> Void in
            button.imageView?.transform = button.selected ?CGAffineTransformMakeRotation(CGFloat(M_PI - 0.001)) : CGAffineTransformIdentity
        }
        
    }
    
    
    
    @objc private func didClickPerson(button: UIButton) {
        FHPrint("button: \(button)")
    }
    @objc private func didClickQRCode(button: UIButton) {
        FHPrint("button: \(button)")
    }
   
}

// MARK: - 扩展 HMHomeTableViewController,将tableView的数据源方法放到这里
extension FHHomeTableViewController {
    
//    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
//        <#code#>
//    }
    
    //返回cell的数量
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.statuses?.count ?? 0
    }
    
    //返回每个cell的内容
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier(ReuseIDentifier, forIndexPath: indexPath) as! FHStatusCell
        
//        cell.textLabel?.text = self.statuses![indexPath.row].text
        cell.status = self.statuses?[indexPath.row]
        
        return cell
    }
    
    ///cell不要高亮
    override func tableView(tableView: UITableView, shouldHighlightRowAtIndexPath indexPath: NSIndexPath) -> Bool {
        
        return false
    }
    
}





